package com.lmb.todo.service;

import com.lmb.todo.pojo.Todo;

import java.util.List;

/**
 * @author lmb
 */
public interface TodoService {


    /**
     * 根据 groupId 查找 todo
     * @param groupId Integer
     * @return List<Todo
     */
    List<Todo> getByGroupId(Integer groupId);

    /**
     * 根据 id 修改 todo 的 done 字段
     * @param id Integer
     * @param done Integer
     * @return Integer
     */
    Integer updateDone(Integer id, Integer done);

    /**
     * 根据 id 修改 todo 的 star 字段
     * @param id Integer
     * @param star Integer
     * @return Integer
     */
    Integer updateStar(Integer id, Integer star);

    /**
     * 更新 todo
     * @param todo Todo
     * @return Integer
     */
    Integer update(Todo todo);

    /**
     * 修改 todo 的 groupId
     * @param todoId Integer
     * @param groupId Integer
     * @return Integer
     */
    Integer updateGroupId(Integer todoId, Integer groupId);

    /**
     * 根据 id 删除 todo
     * @param id Integer
     * @return Integer
     */
    Integer deleteTodo(Integer id);

    /**
    * 新增 todo
    * @param todo Todo
    * @param useDefault boolean
    * @return Integer
    * */
    Integer add(Todo todo, boolean useDefault);

    /**
     * 根据t_todo表的id查询groupId
     * @param id Integer
     * @return Integer
     * */
    Integer getGroupIdById(Integer id);

    /**
     * 根据t_todo表的content模糊查询表中数据
     * @param content String
     * @param groupIdList List<Integer>
     * @return getTodoByContent<Todo>
     * */
    List<Todo> getTodoByContent(String content, List<Integer> groupIdList);

}
